#-*-coding:utf-8-*-
import zipfile
'''
zip处理类，做为课设的一个模块，针对列表数据进行压缩处理并写回文件
'''

class myZip:
    '''
    zip处理类！
    '''
    def __init__(self):
        '''
        初始化函数
        '''
        self.avf = None

    def OpenZipFile(self,filepath,Zipmode):
        '''
        创建压缩文件
        '''
        self.avf = zipfile.ZipFile(filepath,Zipmode,zipfile.ZIP_DEFLATED)

    def CloseZipFile(self):
        '''
        关闭文件
        '''
        if self.avf:
            self.avf.close()

    def WriteZipFile(self,content,archname):
        '''
        写压缩文件内容，content为压缩文件内容，archname为压缩文件的文件名
        '''
        if self.avf:
            #写压缩文件
            self.avf.writestr(archname,content)
        else:
            return False  #没有创建压缩文件

    def ReadZipFileByName(self,archname,pwd = None):
        '''
        读取压缩包中名字为archname的文件
        '''
        if self.avf:
            #表示相关文件已被打开
            tmp = self.avf.read(archname,pwd)
            return tmp
        else:
            return None

    def __del__(self):
        '''
        析构
        '''
        if self.avf:
            self.avf.close() #关闭文件
